这是我的代码:
'use strict'; let obj = { username : 'Hans Gruber', hello: () => 'hello, ' + this.username }; console.log(obj.hello());
但输出是:hello, undefined
.
我希望输出是:hello, Hans Gruber
.
我想我还没有理解this
箭头功能?谁能给我一个明确的解释?
箭头函数保存在this
创建函数时创建的闭包中的绑定.所以它没有设置this
调用函数的上下文.
在你的情况下,this
注定要window
当您创建的对象,所以this.username
是window.username
不是obj.username
.
从文档:
与函数表达式相比,箭头函数表达式(也称为胖箭头函数)具有更短的语法,并且在词汇上绑定该
this
值